package com.demo;

/**
 * Java回调机制-模拟客户端类
 */
public class Client implements CSCallBack {

    private final Server server;

    public Client(Server server) {

        this.server = server;

    }

    /**
     * Client的sendMsg方法中，参数为final，因为要被内部类一个新的线程可以使用。这里就体现了异步。
     * @param msg
     */
    public void sendMsg(final String msg){

        System.out.println("客户端：发送的消息为：" + msg);

        new Thread(new Runnable() {

            @Override

            public void run() {

                /**
                 * 调用server的getClientMsg()，参数传入了Client本身(对应第一点)。
                 */
                server.getClientMsg(Client.this , msg);

            }

        }).start();

        System.out.println("客户端：异步发送成功");

    }

    @Override

    public void process(String status) {

        System.out.println("客户端：服务端回调状态为：" + status);

    }}